iT邦幫忙

2022 iThome 鐵人賽

2
Security

天羅地網:淺談 Web Tracking 的過去、現在、未來系列 第 31

Day 31. 結語、心得,以及那些我搞砸的東西

  • 分享至 

  • xImage
  •  

終於來到這一天了,我,寫完啦!其實只需要寫 30 天就可以了,但總覺得應該要做個總結,所以就多寫一天吧,反正就簡單做了結論就好。這篇沒什麼技術內容,唯一的重點是過去 30 天的文章被我統整在這個網站了:Web Tracking 筆記,repo 在 s3131212/web-tracking-notes,如果喜歡這系列文章還請不吝於戳個 star。

結語

我們就先從對於整系列文章的 overview 開啟吧。一開始我們討論了 web tracking 的用途,並且從傳統的 stateful tracking 開始談起,提到了 cookie 有 first-party 與 third-party 之分,又可以如何被用於追蹤,也討論了如何濫用 cache 與 HSTS,在沒有 cookie 可用時如何繼續追蹤,並討論了幾個防禦手段與其限制,包含 content blocking、Apple 的 ITP、Firefox 的 ETP。接著,我們進入了 browser fingerprinting,討論如何在不使用 cookie 或是 cookie 可能被刪掉的情況下繼續追蹤使用者,Canvas、WebGL、browser extension 等正常功能如何被濫用於 fingerprinting,同時也討論了這些 fingerprinting 技術的防禦方法,然後最後討論為何 browser fingerprinting 這麼難防禦。最後,我們用了僅存的一丁點的時間討論了下一個世代的 web tracking,即:如何一方面保護隱私,另一方面達成 web tracking 中那些正當用途。我們提到 FLoC 與其批評,以及兩個 conversion measurement 技術,分別是 PCM 與 IPA。

我希望能讓讀者一方面感受到 web tracking 為何有其重要性,為何真的是個資安與隱私問題,另一方面也能感受到 web tracking 相關議題的有趣,對各種追蹤與反追蹤方法感到驚奇。我不知道這個目標有沒有成功,從閱讀量來看,大概是沒有吧。

心得

一開始其實只是我想整理一下自己過去在研究 web tracking 的所學,想說既然都整理了,就來把它寫成文章好了。啊既然都要寫成文章了,不如就來比個鐵人賽吧。原本想說既然是紀錄所學而已,大概不會太難,反正都是一些我已經知道的東西,直到真的寫出來才發現自己還有多少東西不懂,也因此又額外去讀了一些論文。在這過程中釐清了不少觀念,也學了不少新知。在這種意義上,鐵人賽其實讓我蠻有收穫的。

參加鐵人賽的確可以促使自己更積極地學習、閱讀,以及強迫自己寫作。但同時我不免懷疑,用文章深度、流暢性,甚至正確性,來換取趕上死線,真的是個理性的選擇嗎?應該不是。如果都花時間下去做了,我寧可把事情做好。就各方面來說我都不是個完美主義者,但有些底限不能妥協。

我要強調這是個人的問題,我相信有人可以在時間內寫出很優秀的文章,事實上這次參賽者有不少就是如此,但我不是這樣的人,這不是適合我的寫作方式。

那些我搞砸的東西

有些小錯我已經默默修掉了,有些太大的錯誤或闕漏,我還正在陸續處理。我沒有要在這邊細數自己寫錯的地方,太多了寫不完。我想要講講自己寫作策略與安排上到底哪裡做錯了。

首先,我應該先介紹各種名詞的。在 web tracking 與廣告產業中,有太多不那麼直觀的專有名詞。例如 origin, eTLD+1, CORS 等專有名詞,一開始希望避免文章被專有名詞淹沒而使用不那麼精準的詞彙,反而使正確性上有些打折,而且對於本來就知道這些專有名詞的人來說,也會很疑惑他想的跟我想的真的是同個東西嗎?為什麼不直接把名字講出來?另外,廣告產業中也有 DSP, SSP 或是廣告買賣方之類的詞彙,這些詞彙也應該先介紹才對,例如昨天介紹 IPA 時,因為不能預設讀者知道這些專有名詞,以致我在很多地方都選擇使用模糊的詞彙,可能讓讀者更難看懂。

第二點是每個章節的長度安排。很顯然 browser fingerprinting 不合理地長。雖然剛開始寫的時候我就已經把 30 天要寫什麼都決定好了,但中間又刪改了很多次,結果好像讓 browser fingerprinting 太長了。雖然這些內容也是有趣的,至少我自己這樣覺得,所以才要介紹它們,但我相信在有限篇幅下,有更好的空間運用。現在回想起來,修改大綱時應該更審慎的。

此外,應該有人會發現,在講傳統 stateful tracking 時文章都還很長,到了 browser fingerprinting 時就變成非常多篇短文,一直到了 privacy-preserving web tracking 又變回長文形式了。這也是當初沒考慮清楚,有點隨意寫,就沒讓整系列的文章風格統一,對於讀單篇的讀者可能沒感覺,但如果是追整系列(如果有這種人的話),可能不是很理想的體驗。

最後,審稿... 真的... 很重要......。有幾篇現在回頭看真的覺得寫得不理想。Day 14 的 canvas fingerprinting 有很多細節都被含糊地帶過,也沒有討論到一些重要防禦,Day 16 的 WebGL fingerprinting 也是寫得有點含糊,這兩篇我打算未來要打掉重練;Day 21 的 CPU fingerprinting 與 Day 22 的 Battery Status Fingerprinting 有點寫得太 high-level 了,有讀跟沒讀一樣;Day 27 作為開啟 privacy-preserving web tracking 的楔子,卻沒有對於接下來要做什麼做出夠好的介紹,以致 Day 28 與 Day 29, 30 的文章脈絡是斷裂的。還有許多其他文章也是我覺得不理想的,未來想重寫的,就不一一列出來了。

所以接下來呢?

前面提過,一開始寫這一系列的文章只是想當自己的筆記,而且我有打算繼續寫下去,所以就決定乾脆弄個網站來把筆記整理起來。

網站:https://web-tracking.allenchou.cc/
Repo:https://github.com/s3131212/web-tracking-notes

目前網站上的文章都是鐵人賽的版本,而且網站還有點亂,但我之後會陸續更新。如果喜歡這一系列的文章,還請幫按個 star,這對我來說是很大的鼓勵 >///<

如果對於文章有任何問題,會發現我有寫錯、闕漏的地方,也歡迎開個 issue 或寄信跟我說(s3131212 at gmail.com)。

希望大家到目前為止還喜歡這一系列的文章,而且有些收穫。

致謝

老梗:要謝的人太多,就謝天吧。
在學期 web tracking 的路上有太多需要被感謝的人,當初是指導教授和 lab 學長鼓勵我去嘗試,之後也有社群圈的夥伴跟我分享許多有趣的技術,還有進廣告產業的學姐分享他們如何使用 web tracking(不過我沒把這些東西寫進來)。在寫作上,我想尤其感謝 Melissa 鼓勵我參賽並幫忙審稿,Lisa 初期對於我的文字風格給了一些建議。

如果文章內容有任何錯誤,一切由我負責。

那大概就是這樣啦,完賽啦,謝謝大家!


上一篇
Day 30. Mozilla 與 Meta 的嘗試:Interoperable Private Attribution
系列文
天羅地網:淺談 Web Tracking 的過去、現在、未來31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
威利斯
iT邦研究生 3 級 ‧ 2023-01-19 11:57:24

謝謝貢獻分享! browser fingerprinting 的攻防讓我這資安小白大開眼界,謝謝鐵人賽能釣出您這麼優質的系列文!
/images/emoticon/emoticon41.gif

我要留言

立即登入留言